home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Online / SpeakFreely / src / lpc10 / trans.c < prev    next >
C/C++ Source or Header  |  2000-05-18  |  998b  |  43 lines

  1. /*********************************************************************
  2. *
  3. *    TRANS Version 54
  4. *
  5. **********************************************************************
  6. *
  7. *   Handle Quantization and Input/Output of LPC parameters
  8. *
  9. * Input:
  10. *  ORDER - Prediction order
  11. * In/Outputs:
  12. *  VOICE - Half frame voicing decisions
  13. *  PITCH - Pitch index
  14. *  RMS     - Energy
  15. *  RC     - Reflection coefficients
  16. *  EOF     - End of file flag
  17. */
  18.  
  19. #include <stdio.h>
  20. #include "config.ch"
  21. #include "contrl.ch"
  22. #include "lpcdefs.h"
  23.  
  24.  
  25. trans(voice, pitch, rms, rc)
  26. int voice[2], *pitch;
  27. float *rms, rc[ORDER];
  28. {
  29. int i, ipitv, irms, irc[MAXORD], ibits[MAXNB];
  30.  
  31. /* Initialization */
  32. memset(ibits, 0, MAXNB*sizeof(int));
  33.  
  34. /*     Quantize to 2400 bps, 600 bps, 800 bps or 1200 bps    */
  35.  
  36.   encode(voice, pitch, rms, rc-1, &ipitv, &irms, irc-1);
  37.   channel(0, &ipitv, &irms, irc-1, ibits-1);
  38.  
  39. /*  Decode parameters from bitstream    */
  40.   channel(1, &ipitv, &irms, irc-1, ibits-1);
  41.   decode(ipitv, &irms, irc-1, voice, pitch, rms, rc-1);
  42. }
  43.